﻿using UnityEngine;
using System.Collections;
using System.Collections.Generic;

class CameraSight : MonoBehaviour
{
    // private Transform PlayerTransform;
    // private GameObject Player;
    // private List<GameObject> collideredObjects;//本次射线hit到的GameObject;
    // private List<GameObject> collideredLastObjects;//上次射线hit到的GameObje；

    // private void Start()
    // {
    //     collideredLastObjects = new List<GameObject>();
    //     collideredObjects = new List<GameObject>();
    //     Player = GameObject.FindGameObjectWithTag("Player");
    // }

    // private void Update()
    // {
    //     collideredLastObjects.Clear();
    //     for(int i = 0;i<collideredObjects.Count;i++)
    //     {
    //         collideredLastObjects.Add(collideredObjects[i]);
    //     }
    //     collideredObjects.Clear();

    //     PlayerTransform = Player.transform;
    //     Vector3 dir = (transform.position - PlayerTransform.position).normalized;
    //     RaycastHit[] hits
    //         = Physics.RaycastAll(PlayerTransform.position, dir, Vector3.Distance(PlayerTransform.position, transform.position));
    //     Debug.DrawLine(PlayerTransform.position, transform.position, Color.red);

    //     for(int i = 0;i<hits.Length;i++)
    //     {
    //         if(hits[i].collider.gameObject.tag != "Player")
    //         {
    //             collideredObjects.Add(hits[i].collider.gameObject);
    //             SetMaterialsColor(collideredObjects[i].GetComponent<Renderer>(), true);
    //         }
    //     }
    //     for(int i = 0;i<collideredLastObjects.Count;i++)
    //     {
    //         for(int j = 0;j<collideredObjects.Count;j++)
    //         {
    //             if(collideredLastObjects[i] != null && collideredObjects[i].name == collideredLastObjects[j].name)
    //             {
    //                 collideredLastObjects[i] = null;
    //                 break;
    //             }
    //         }
    //     }

    //     for(int i = 0;i<collideredLastObjects.Count;i++)
    //     {
    //         if(collideredLastObjects[i] != null)
    //         {
    //             SetMaterialsColor(collideredLastObjects[i].gameObject.GetComponent<Renderer>(), false);
    //         }
    //     }
    // }

    // void SetMaterialsColor(Renderer r, bool isClear)
    // {
    //     int materialsNumber = r.sharedMaterials.Length;
    //     for (int i = 0; i < materialsNumber; i++)
    //     {
    //         Color color = r.materials[i].color;
    //         if (isClear)
    //             color.a = 0.6f;
    //         else
    //             color.a = 1.0f;
    //         r.materials[i].SetColor("_Color", color);
    //     }
    // }
}
